﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//联合体的声明
union Un
{
	char c;
	int i;
};

int check_sys()
{
	union
	{
		int i;
		char c;
	}un;
	un.i = 1;
	return un.c;//返回1是⼩端，返回0是⼤端
}

int main()
{

	//联合变量的定义
	//union Un un = { 0 };
	////计算变量的大小
	//printf("%d\n", sizeof(un));


	union Un
	{
	 char c;
	 int i;
	};

	// 联合变量的定义
	//	union Un un = { 0 };
	//// 下⾯输出的结果是⼀样的吗？
	//printf("%p\n", &(un.i));
	//printf("%p\n", &(un.c));
	//printf("%p\n", &un);

	// 联合变量的定义
	/*union Un un = { 0 };
	un.i = 0x11223344;
	un.c = 0x55;
	printf("%x\n", un.i);*/

	//union Un1
	//{
	// char c[5];
	// int i;
	//};
	//union Un2
	//{
	//	short c[7];
	//	int i;
	//};

	//// 下⾯输出的结果是什么？
	///*printf("%d\n", sizeof(union Un1));
	//printf("%d\n", sizeof(union Un2));*/

	//struct gift_list
	//{
	//	//公共属性
	//	int stock_number;//库存量
	//	double price;//定价
	//	int item_type;//商品类型
	//	union {
	//		struct {
	//			//特殊属性
	//			char title[20];//书名
	//			char author[20];//作者
	//			int num_pages;//页数
	//		}book;
	//		
	//		struct {
	//			char design[30];//设计
	//		}mug;

	//		struct {
	//			char design[30];//设计
	//			int colors;//颜色
	//			int sizes;//尺寸
	//		}shirt;
	//	};
	//	
	//};

	//enum Day//星期
	//{
	// Mon,
	// Tues,
	// Wed,
	// Thur,
	// Fri,
	// Sat,
	// Sun
	//};
	//enum Sex//性别
	//{
	//	MALE,
	//	FEMALE,
	//	SECRET
	//};
	//enum Color//颜⾊
	//{
	//	RED,
	//	GREEN,
	//	BLUE
	//};

	//enum Color//颜⾊
	//{
	// RED = 2,
	// GREEN = 4,
	// BLUE = 8
	//};

	//enum Color clr = GREEN;//使用时可以赋值

	/*int num = 1461;
	int tnum = num;
	int cnt = 0;
	while (tnum) {

		cnt++;
		tnum /= 10;
	}

	int sum = 0;
	int i = 10;
	while (--cnt) {

		int mul1 = num % i;
		int mul2 = num / i;
		sum += mul1 * mul2;
		i *=10;
	}*/

	/*int i = 10000;
	while (i < 100000) {

		int tnum = i;
		int cnt = 0;
		while (tnum) {

			cnt++;
			tnum /= 10;
		}

		int sum = 0;
		int dvl = 10;
		while (cnt >= 1) {

			int mul1 = i % dvl;
			int mul2 = i / dvl;
			sum += mul1 * mul2;
			dvl *= 10;
			cnt--;
		}

		if (sum == i) {
			printf("%d ", i);
		}
		i++;
	}*/


//int ary[50] = { 3,4,5,14,15,23,2,4 };
//int del = 15;
//int cnt = 0;
//for (int i = 0; i < 50; i++) {
//	if (ary[i] == del) {
//		ary[i] = 0;
//		cnt++;
//	}
//}
//
//int i = 0;
//while (ary[i] != 0 || cnt != 0) {
//
//	if (ary[i] != 0) {
//		printf("%d ", ary[i]);
//	}
//	else {
//		cnt--;
//	}
//	
//	i++;
//}

//int n;
//int ary[50] = { 0 };
////scanf("%d", &n);
//int i = 0;
//while (scanf("%d", &n) != EOF) {
//	i++;
//}

union
{
	short k;
	char i[2];
}*s, a;
s = &a;
s->i[0] = 0x39;
s->i[1] = 0x38;
printf("%x\n", a.k);
	return 0;
}
